package expression

import (
	"fmt"
	"gitee.com/huanminabc/go-utils/code_analysis"
	"runtime/debug"
)

// 注册所有的分析器
var Analyzers = []func(*int, []code_analysis.Token) error{
	TokenToVarExpression,    //var 变量 = 表达式;
	TokenToAssignExpression, //变量 = 表达式;
}

// 执行所有的分析器
func RunAnalyze(index *int, tokens []code_analysis.Token) {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(err)
			debug.PrintStack()
		}
	}()

	for _, analyzer := range Analyzers {
		err := analyzer(index, tokens)
		if err != nil {
			continue
		}
		return
	}
}
